package com.csun.cmny.provider.device.watch.entity;

import com.csun.cmny.provider.model.domain.DmcWatchAlarmClock;
import com.csun.cmny.provider.model.domain.DmcWatchOffCmdRecord;
import com.google.common.collect.Maps;
import lombok.Data;

import javax.persistence.Column;
import java.io.Serializable;
import java.util.Map;

/**
 * @Auther: chisj chisj@foxmal.com
 * @Date: 2019-04-03 15:53
 * @Description: the class watch data entity
 */
@Data
public class WatchDataEntity implements Serializable {

    private static final long serialVersionUID = -6182556812815621898L;

    /**
     * 设备Id
     */
    private Long deviceId;

    /**
     * 设备编号
     */
    private String deviceNo;

    /**
     * 老人Id
     */
    private Integer oldmanId;

    /**
     * 老人姓名
     */
    private String oldmanName;

    /**
     * 状态, offline-离线，online-在线
     */
    private String status = "offline";

    /**
     * 佩戴状态 0-未佩戴 1-已佩戴
     */
    @Column(name = "wear_state")
    private Integer wearState = 0;

    /**
     * 电量
     */
    private Integer power = 0;

    /**
     * 协议版本号
     */
    private String protocol = "01";

    /**
     * 设备 imsi
     */
    private String imsi = "";

    /**
     * 终端固件版本号
     */
    @Column(name = "wear_version")
    private String wearVersion = "1.0.1";

    /**
     * gps地址
     */
    @Column(name = "gps_string")
    private String gpsString;

    /**
     * 百度gps,lat<纬度>,lng<经度>
     */
    @Column(name = "bd_gps")
    private String bdGps;

    /**
     * 基站地址
     */
    @Column(name = "cell_string")
    private String cellString;

    /**
     * wifi地址
     */
    @Column(name = "wifi_string")
    private String wifiString;

    /**
     * 定位方式 1-gps 2-基站 3-wifi
     */
    @Column(name = "lbs_type")
    private Integer lbsType;

    /**
     * 具体位置
     */
    private String location;

    /**
     * 具体位置时间
     */
    @Column(name = "location_time")
    private String locationTime;

    /**
     * 步数
     */
    private Integer step;

    /**
     * 公里数
     */
    private Float kilometer;

    /**
     * 卡路里数 体重（kg）* 距离（km）* 运动系数（k）
     */
    private Float calorie;

    /**
     * 心率数
     */
    @Column(name = "heart_rate")
    private Integer heartRate;

    /**
     * 心率时间
     */
    @Column(name = "heart_time")
    private String heartTime;

    /**
     * 睡眠质量 睡眠开始时间&睡眠结束时间&深睡眠时间&浅睡眠时间
     * 此数据每天发送一次，在起床以后发送，没有数据时&之间都为空
     */
    private String sleepQuality;

    /**
     * 睡眠开始时间 eg：201612162330
     */
    @Column(name = "sleep_start")
    private String sleepStart;

    /**
     * 睡眠结束时间 eg:201612170730
     */
    @Column(name = "sleep_end")
    private String sleepEnd;

    /**
     * 深睡时长 eg:0210
     */
    @Column(name = "sleep_deep")
    private String sleepDeep = "0000";

    /**
     * 浅睡时长 eg:0550
     */
    @Column(name = "sleep_light")
    private String sleepLight = "0000";

    /**
     * 睡眠总时长
     */
    @Column(name = "sleep_total")
    private String sleepTotal;

    /**
     * 睡眠日期
     */
    @Column(name = "sleep_date")
    private String sleepDate;

    /**
     * 是否激活 0-未激活 1-已激活
     */
    private Integer activation = 0;

    // 终端当前时间(年月日时分秒) yyyyMMddHHmmss
    private String terminalTime = "";

    /**
     * 是否在发送铃声文件 true - 正在发送
     */
    public boolean sendVoice = false;

    /**
     * 机构Id
     */
    public Long groupId;

    /**
     * 待下发的铃声
     */
    private DmcWatchAlarmClock dmcWatchAlarmClock = null;

    /**
     * 待下发的离线命令
     *
     * @key     code                    功能码
     * @value   dmcWatchOffCmdRecord    离线记录
     */
    private Map<String, DmcWatchOffCmdRecord> watchOffCmdRecordMap = Maps.newHashMap();
}
